#ifndef SECURITYTOOL_H
#define SECURITYTOOL_H

#include <QObject>
#include <functional>
#include "mytypes.h"
using namespace Yzty;

class SecurityTool final:public QObject
{
    Q_OBJECT
public:
    static SecurityTool* GetInstance(QObject* parent=nullptr);
    virtual ~SecurityTool();

    std::function<void()> GetToolFunction(Yzty::SecurityToolCode code);

    QVector<BaceInfor*> GetSysShareDirInfor();           //系统共享安全
    QVector<BaceInfor*> GetNetLoginInfor();              //系远程登陆检查
    QVector<BaceInfor*> GetSysUpdateInfor();             //系统升级文件
    QVector<BaceInfor*> GetNetPortInfor();               //系统开放端口
    QVector<BaceInfor*> GetAccountSecInfor();            //账户安全配置
    QVector<BaceInfor*> GetPwdConfigInfor();             //密码策略配置
    QVector<BaceInfor*> GetNetConfig();                  //网络安全配置
    QVector<BaceInfor*> GetSecAuditInfor();              //安全审计配置
    QVector<BaceInfor*> GetSudoConfigInfor();            //sudo策略配置
    QVector<BaceInfor*> GetNetFireWallInfor();           //防火墙配置
    QVector<BaceInfor*> GetSysProcessInfor();            //系统进程信息
    QVector<BaceInfor*> GetSysServerInfor();             //系统服务信息
    QVector<BaceInfor*> GetSysKernelInfor();             //系统加载内核
    QVector<BaceInfor*> GetEmailInfor();                 //邮件客户端
    QVector<BaceInfor*> GetVirMachine();                 //虚拟机安装
    QVector<BaceInfor*> GetDefendSoft();                 //杀毒软件防护
    QVector<BaceInfor*> GetUserLoginInfor();             //远程
    QVector<BaceInfor*> GetBroHistoryInfor();            //浏览器历史记录
    QVector<BaceInfor*> GetBroDownloadInfor();           //下载记录信息
    QVector<BaceInfor*> GetBroCollectInfor();            //收藏夹
    QVector<BaceInfor*> GetBroCookiesInfor();            //浏览器历史记录

private:
    explicit SecurityTool(QObject* parent=nullptr);
    static SecurityTool* _instance;
};

#endif // SECURITYTOOL_H
